package com.yk.spark.service.cluster.api;

import com.yk.spark.model.cluster.ClusterModel;

import java.util.List;

/**
 * Project Name:cykspark
 * File Name:IClusterService
 * Package Name:com.yk.spark.service.cluster.api
 * Date:2017/9/20 11:27
 * Author:zhangju
 * Description:
 * Copyright (c) 2017, 重庆云凯科技有限公司 All Rights Reserved.
 */


public interface IClusterService {

    /**
     * 查询所有集群信息
     *
     * @return 集群信息列表
     */
    List<ClusterModel> queryAll();

    /**
     * 分页查询集群信息
     *
     * @param start 起始位置
     * @param limit 最大结果数
     * @return 集群信息列表
     */
    List<ClusterModel> query(int start,int limit);

    /**
     * 查询集群信息记录总数
     *
     * @return 集群信息记录总数
     */
    Long queryTotal();

    /**
     * 搜索集群信息
     *
     * @param clusterName 集群名称
     * @param ip 集群ip地址
     * @return 集群信息列表
     */
    List<ClusterModel> search(String clusterName,String ip);

    /**
     * 查询集群信息
     *
     * @param clusterId 集群唯一标识
     * @return 集训信息
     */
    ClusterModel query(String clusterId);

    /**
     * 保存集群信息
     *
     * @param clusterName 集群名
     * @param ip 集群ip地址
     * @param port 集群端口
     * @param username 用户名
     * @param password 用户密码
     * @return 操作反馈
     */
    boolean saveCluster(String clusterName,String ip,int port,String username,String password);

    /**
     * 更新集群信息
     *
     * @param clusterId 集群唯一标识
     * @param clusterName 集群名
     * @param ip 集群ip地址
     * @param port 集群端口
     * @param username 用户名
     * @param password 用户密码
     * @return 操作反馈
     */
    boolean updateCluster(String clusterId,String clusterName,String ip,int port,String username,String password);

    /**
     * 删除集群信息
     *
     * @param clusterId 集群唯一标识
     * @return 操作反馈
     */
    boolean deleteCluster(String clusterId);

    /**
     * 批量删除集群信息
     * @param clustersId 集群唯一标识列表
     * @return 操作反馈
     */
    boolean deleteBatchCluster(List<String> clustersId);


}
